package com.example.web;

import com.example.dao.MenuDao;
import com.example.pojo.Menu;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/menu")
public class MenuController {


    @Autowired
    private MenuDao menuDao;

    @Value("${server.port}")
    private String port;


    @RequestMapping("/index")
    public String index(){
        return "menu : "+port;
    }

    /**
     * 查询所有菜单信息
     * @param startIndex
     * @param nums
     * @return
     */
    @GetMapping("/selectAll/{startIndex}/{nums}")
    public List<Menu> selectAllMenu(@PathVariable("startIndex") Integer startIndex,
                                    @PathVariable("nums") Integer nums){

        List<Menu> menuList = menuDao.selectAllMenu(startIndex, nums);
        return menuList;
    }

    /**
     * 按照任意属性查询菜单信息
     * @param menu
     * @return
     */
    @RequestMapping("/selectByField")
    public Menu selectMenuByField(Menu menu){

        Menu menuByField = menuDao.selectMenuByField(menu);
        return menuByField;
    }

    /**
     * 查询菜单信息数量
     * @return
     */
    @GetMapping("/selectCount")
    public Integer countMenu(){
        return menuDao.countMenu();
    }

    /**
     * 更新菜单数据信息
     * @param menu
     * @return
     */
    @GetMapping("/updateByField")
    public String updateMenuByField(Menu menu){

        menuDao.updateMenuByField(menu);
        return "更新id="+menu.getId()+"菜单数据成功!";
    }

    /**
     * 新增菜单数据信息
     * @param menu
     * @return
     */
    @GetMapping("/insertByField")
    public String insertMenuByField(Menu menu){

        menuDao.insertMenuByField(menu);
        return "插入id="+menu.getId()+"菜单数据成功!";
    }

    /**
     * 删除指定的菜单信息数据
     * @param menu
     * @return
     */
    @GetMapping("/deleteByField")
    public String deleteMenuByField(Menu menu){

        menuDao.deleteMenuByField(menu);
        return "删除id="+menu.getId()+"菜单数据成功!";
    }

}
